package cn.lingyangwl.agile.tenant.core;

import cn.lingyangwl.agile.model.BasePO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author shenguangyang
 */
public interface TenantDataIsolateService extends IService<TenantData> {
    /**
     * 添加待处理的实体, 只有被添加过的才会被处理
     */
    void addDataType(ITenantDataType tenantDataType);

    /**
     * 处理查询结果
     */
    void processQueryResult(List<? extends BasePO> list);
    <T extends BasePO> void processQueryResult(T entity);

    /**
     * 删除数据
     */
    void deleteData(ITenantDataType bizType, List<Long> ids);
    void deleteData(ITenantDataType bizType, Long id);

    /**
     * 保存数据 - 只用管理端才可以保存
     */
    <T extends BasePO> void saveData(T entity);

    /**
     * 更新数据
     */
    <T extends BasePO> void updateData(T entity);
}
